Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Розв’язання систем лінійних алгебраїчних рівнянь (СЛАР) прямими методами. Звичайний метод Гауса та метод квадратних коренів.

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
ІСМ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Чисельні методи

Частина тексту файла

Міністерство освіти і науки України НТУУ «Київський політехнічний інститут ім. Ігоря Сікорського» Кафедра АПЕПС Лабораторна робота №1  з дисципліни «Чисельні методи в моделюванні енергетичних процесів» «Розв’язання систем лінійних алгебраїчних рівнянь (СЛАР) прямими методами. Звичайний метод Гауса та метод квадратних коренів.» Варіант 15 Завдання / Розв’язати систему рівнянь з кількістю значущих цифр m = 6. Використати метод Гауса для парних варіантів шляхом зведення матриці до верхньої трикутної побудованої на побічній діагоналі, для непарних - шляхом зведення до діагональної матриці. Вивести всі проміжні результати (матриці А, що отримані в ході прямого ходу методу Гауса, матрицю зворотного ходу методу Гауса та розв’язок системи. Навести результат перевірки: вектор нев’язки r = b – Ax, де x - отриманий розв’язок. Порівняти корені рівнянь, отримані у Mathcad, із власними результатами за допомогою методу середньоквадратичної похибки. Для варіанту 15 матриця має такий вигляд: / Прямий хід методу Гауса: / / / Зворотній хід: / / Відповідь: / Вектор нев’язки: 7,590085 = 7,59 (0,000085) 3,210024 = 3,21 (0,000024) 2,880229 = 2,88 (0,000229) 6,250004 = 6,25 (0,000004) 6,349953 = 6,35 (0,000047) Розвязок через калькулятор: / / / / / Середньоквадратична похибка: / Код програми: #include <iostream> #include <iomanip> #include <windows.h> #define SIZE 5 using namespace std; void matOutput(float(*mat)[6], int rows, int colums) { for (int i = 0; i < rows; i++) { for (int j = 0; j < colums; j++) { cout << setw(9) << fixed << setprecision(4) << mat[i][j]; } cout << endl; } cout << endl; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); const int rows = 5; const int columns = 6; float mat[rows][columns] = { {6.18, 1.12, 0.95, 1.32, 0.83, 7.59}, {1.12, 3.28, 2.12, 0.57, 0.91, 3.21}, {0.95, 2.12, 7.13, 1.29, 1.57, 2.88}, {1.32, 0.57, 1.29, 3.57, 1.25, 6.25}, {0.83, 0.91, 1.57, 1.25, 6.21, 6.35} }; float result[rows]; cout << "Початкова матриця:" << endl; matOutput(mat, rows, columns); cout << "Прямий хід:" << endl << endl; cout << "Поділимо 1 рядок на " << mat[0][0] <<" :" << endl << endl; float temp = mat[0][0]; for (int i = 0; i < columns; i++) { mat[0][i] /= temp; } matOutput(mat, rows, columns); cout << "Помножимо 1 рядок на " << -mat[1][0] << " і додамо до 2 :" << endl << endl; temp = -mat[1][0]; for (int i = 0; i < columns; i++) { mat[1][i] += (mat[0][i] * temp); } matOutput(mat, rows, columns); cout << "Помножимо 1 рядок на " << -mat[2][0] << " і додамо до 3 :" << endl << endl; temp = -mat[2][0]; for (int i = 0; i < columns; i++) { mat[2][i] += (mat[0][i] * temp); } matOutput(mat, rows, columns); cout << "Помножимо 1 рядок на " << -mat[3][0] << " і додамо до 4 :" << endl << endl; temp = -mat[3][0]; for (int i = 0; i < columns; i++) { mat[3][i] += (mat[0][i] * temp); } matOutput(mat, rows, columns); cout << "Помножимо 1 рядок на " << -mat[4][0] << " і додамо до 5 :" << endl << endl; temp = -mat[4][0]; for (int i = 0; i < columns; i++) { mat[4][i] += (mat[0][i] * temp); } matOutput(mat, rows, columns); cout << "Поділимо 2 рядок на " << mat[1][1] << endl << endl; temp = mat[1][1]; for (int i = 0; i < columns; i++) { mat[1][i] /= temp; } matOutput(mat, rows, columns); cout << "Помножимо 2 рядок на " << -mat[2][1] << " і додамо до 3 :" << endl << endl; temp = -mat[2][1]; for (int i = 0; i < columns; i++) { mat[2][i] += (mat[1][i] * temp); } matOutput(mat, rows, columns); cout << "Помножимо 2 рядок на " << -mat[3][1] << " і додамо до 4 :" << endl << endl; temp = -mat[3][1]; for (int i = 0; i < columns; i++) { mat[3][i] += (mat[1][i] * temp); } matOutput(mat, rows, columns); cout << "Помножимо 2 рядок на " << -mat[4][1] << " і додамо до 5 :" << endl << endl; temp = -mat[4][1]; for (int i = 0; i < columns; i++) { mat[4][i] += (mat[1][i] * temp); } matOutput(mat, rows, columns); cout << "Поді...
Антиботан аватар за замовчуванням

03.05.2023 17:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини